/**
 * jims
 */
package com.jims.master.modules.blood.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jims.master.common.persistence.DataEntity;
import com.jims.master.modules.doctor.entity.PatMasterIndex;
import org.hibernate.validator.constraints.Length;

import java.util.Date;
import java.util.List;


/**
 * 发血单Entity
 * @author CTQ
 * @version 2017-04-13
 */
public class BloodOutSheet extends DataEntity<BloodOutSheet> {
	
	private static final long serialVersionUID = 1L;
	private String bloodOutNum;		// 发血单号
	private String bloodId;		// 血袋号(血袋标识)
	private String applyId;		// 申请单号
	private String matchSheetId;		// 配血ID
	private String flag;		// 作废标志（0-正常，1-作废）
	private Date bloodZfDate;		// 作废日期
	private String zfOpertor;		// 作废者
	private String lxOpertor;//取血者
	private String componentId;		// 血液成分代码

	private Date startDate;
	private Date stopDate;
	private String bloodCapacity;
	private String applyNum;

	private List<BloodOutSheet> sheetList;

    private PatMasterIndex patMasterIndex;
    private BloodInpDetail bloodInpDetail;
	
	public BloodOutSheet() {
		super();
	}

	public BloodOutSheet(String id){
		super(id);
	}

	@Length(min=1, max=20, message="发血单号长度必须介于 1 和 20 之间")
	public String getBloodOutNum() {
		return bloodOutNum;
	}

	public void setBloodOutNum(String bloodOutNum) {
		this.bloodOutNum = bloodOutNum;
	}
	
	@Length(min=1, max=20, message="血袋号(血袋标识)长度必须介于 1 和 20 之间")
	public String getBloodId() {
		return bloodId;
	}

	public void setBloodId(String bloodId) {
		this.bloodId = bloodId;
	}
	
	@Length(min=1, max=64, message="申请单号长度必须介于 1 和 64 之间")
	public String getApplyId() {
		return applyId;
	}

	public void setApplyId(String applyId) {
		this.applyId = applyId;
	}
	
	@Length(min=1, max=64, message="配血ID长度必须介于 1 和 64 之间")
	public String getMatchSheetId() {
		return matchSheetId;
	}

	public void setMatchSheetId(String matchSheetId) {
		this.matchSheetId = matchSheetId;
	}
	
	@Length(min=0, max=1, message="作废标志（0-正常，1-作废）长度必须介于 0 和 1 之间")
	public String getFlag() {
		return flag;
	}

	public void setFlag(String flag) {
		this.flag = flag;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getBloodZfDate() {
		return bloodZfDate;
	}

	public void setBloodZfDate(Date bloodZfDate) {
		this.bloodZfDate = bloodZfDate;
	}
	
	@Length(min=0, max=64, message="作废者长度必须介于 0 和 64 之间")
	public String getZfOpertor() {
		return zfOpertor;
	}

	public void setZfOpertor(String zfOpertor) {
		this.zfOpertor = zfOpertor;
	}
	
	@Length(min=1, max=64, message="血液成分代码长度必须介于 1 和 64 之间")
	public String getComponentId() {
		return componentId;
	}

	public void setComponentId(String componentId) {
		this.componentId = componentId;
	}

	public Date getStartDate() {
		return startDate;
	}

	public void setStartDate(Date startDate) {
		this.startDate = startDate;
	}

	public Date getStopDate() {
		return stopDate;
	}

	public void setStopDate(Date stopDate) {
		this.stopDate = stopDate;
	}

	public String getBloodCapacity() {
		return bloodCapacity;
	}

	public void setBloodCapacity(String bloodCapacity) {
		this.bloodCapacity = bloodCapacity;
	}

	public String getLxOpertor() {
		return lxOpertor;
	}

	public void setLxOpertor(String lxOpertor) {
		this.lxOpertor = lxOpertor;
	}

	public List<BloodOutSheet> getSheetList() {
		return sheetList;
	}

	public void setSheetList(List<BloodOutSheet> sheetList) {
		this.sheetList = sheetList;
	}

	public String getApplyNum() {
		return applyNum;
	}

	public void setApplyNum(String applyNum) {
		this.applyNum = applyNum;
	}

    public PatMasterIndex getPatMasterIndex() {
        return patMasterIndex;
    }

    public void setPatMasterIndex(PatMasterIndex patMasterIndex) {
        this.patMasterIndex = patMasterIndex;
    }

    public BloodInpDetail getBloodInpDetail() {
        return bloodInpDetail;
    }

    public void setBloodInpDetail(BloodInpDetail bloodInpDetail) {
        this.bloodInpDetail = bloodInpDetail;
    }
}